package xin.marcher.wind.migrate.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import xin.marcher.framework.mybatis.dataobject.BaseDO;

import java.time.LocalDateTime;

/**
 * 迁移明细表
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class EtlDirtyRecordDO extends BaseDO {

    /**
     * 主键
     */
    private Long id;

    /**
     * 业务系统ID
     */
    private Long domainId;

    /**
     * 业务系统名称
     */
    private String domain;

    /**
     * 目标表名
     */
    private String targetTableName;

    /**
     * 逻辑模型名（逻辑表）
     */
    private String logicModel;

    /**
     * 迁移批次
     */
    private String ticket;

    /**
     * 当前所属批次阶段号
     */
    private Integer curTicketStage;

    /**
     * 字段名
     */
    private String recordKey;

    /**
     * 字段值
     */
    private String recordValue;

    /**
     * 迁移状态
     */
    private Integer status;

    /**
     * 错误消息
     */
    private String errorMsg;

    /**
     * 每页条数
     */
    private Integer syncSize;

    /**
     * 已重试次数
     */
    private Integer retryTimes;

    /**
     * 上次重试时间
     */
    private LocalDateTime lastRetryTime;

    /**
     * 开始滚动时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime scrollTime;

    /**
     * 滚动截止时间
     */
    private LocalDateTime scrollEndTime;
}
